refactor: use OpenObserve helm charts for deployment instead of Kubernetes manifests#56
Conversation
…netes manifests Signed-off-by: Nilushan Costa <nilushan@wso2.com>
📝 WalkthroughWalkthroughThe PR migrates OpenObserve deployments in logs and tracing observability modules from inline Helm manifests to upstream Helm chart dependencies (openobserve-standalone and openobserve). Admin credential keys are renamed to ZO_ROOT_USER_EMAIL/ZO_ROOT_USER_PASSWORD, Helm chart versions are bumped, and TLS configuration becomes template-driven instead of hard-coded. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related issues
Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
📝 Coding Plan
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
observability-logs-openobserve/helm/templates/openobserve/httproute.yaml (1)
4-27:⚠️ Potential issue | 🔴 CriticalUpdate HTTPRoute condition to support both standalone and distributed (HA) modes.
The HTTPRoute is currently only created when
openobserve-standalone.enabledis true. However, this chart includes a distributed (HA) deployment option (openobserve.enabled), and both modes create a service with the same name (openobserve). When users switch to HA mode as documented in the README, the HTTPRoute will not be created, breaking external access.Update the condition to trigger for either deployment mode:
Suggested condition update
-{{- if (index .Values "openobserve-standalone" "enabled") }} +{{- if or (index .Values "openobserve-standalone" "enabled") (index .Values "openobserve" "enabled") }}🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@observability-logs-openobserve/helm/templates/openobserve/httproute.yaml` around lines 4 - 27, The template currently creates the HTTPRoute only when openobserve-standalone is enabled; change the top-level conditional to create the HTTPRoute when either standalone or HA is enabled by replacing the current if check (index .Values "openobserve-standalone" "enabled") with an or expression that checks both (index .Values "openobserve-standalone" "enabled") and (index .Values "openobserve" "enabled") so the HTTPRoute is rendered when either openobserve-standalone.enabled or openobserve.enabled is true.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Outside diff comments:
In `@observability-logs-openobserve/helm/templates/openobserve/httproute.yaml`:
- Around line 4-27: The template currently creates the HTTPRoute only when
openobserve-standalone is enabled; change the top-level conditional to create
the HTTPRoute when either standalone or HA is enabled by replacing the current
if check (index .Values "openobserve-standalone" "enabled") with an or
expression that checks both (index .Values "openobserve-standalone" "enabled")
and (index .Values "openobserve" "enabled") so the HTTPRoute is rendered when
either openobserve-standalone.enabled or openobserve.enabled is true.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: bc55cc2c-bb4e-4ea5-8b36-dc7dcbbddeee
⛔ Files ignored due to path filters (2)
observability-logs-openobserve/helm/Chart.lockis excluded by!**/*.lockobservability-tracing-openobserve/helm/Chart.lockis excluded by!**/*.lock
📒 Files selected for processing (15)
observability-logs-openobserve/README.mdobservability-logs-openobserve/helm/Chart.yamlobservability-logs-openobserve/helm/templates/adapter/deployment.yamlobservability-logs-openobserve/helm/templates/fluent-bit/config.yamlobservability-logs-openobserve/helm/templates/openobserve-setup/job.yamlobservability-logs-openobserve/helm/templates/openobserve/httproute.yamlobservability-logs-openobserve/helm/templates/openobserve/service.yamlobservability-logs-openobserve/helm/templates/openobserve/statefulset.yamlobservability-logs-openobserve/helm/values.yamlobservability-tracing-openobserve/README.mdobservability-tracing-openobserve/helm/Chart.yamlobservability-tracing-openobserve/helm/templates/adapter/deployment.yamlobservability-tracing-openobserve/helm/templates/openobserve/service.yamlobservability-tracing-openobserve/helm/templates/openobserve/statefulset.yamlobservability-tracing-openobserve/helm/values.yaml
💤 Files with no reviewable changes (4)
- observability-tracing-openobserve/helm/templates/openobserve/statefulset.yaml
- observability-tracing-openobserve/helm/templates/openobserve/service.yaml
- observability-logs-openobserve/helm/templates/openobserve/service.yaml
- observability-logs-openobserve/helm/templates/openobserve/statefulset.yaml
Purpose
openchoreo/openchoreo#2841
The observability modules (observability-logs-openobserve and observability-tracing-openobserve) deploy OpenObserve using Kubernetes manifests. This makes it harder to stay up to date with upstream releases and limits available configuration options.
Goals
Approach
Summary by CodeRabbit
Release Notes
New Features
Chores
Documentation